package com.lavegue.dao;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.lavegue.common.BaseDao;
import com.lavegue.common.Page;
import com.lavegue.model.ManageUserInfo;
import com.lavegue.model.UserInfo;

/**
 * author: luoweibin date:2011-12-20 description:
 * 
 */
public interface UserInfoDao extends BaseDao<UserInfo, Integer> {

	/**
	 * 根据账户名查询用户信息
	 * 
	 * @param account
	 * @return
	 */
	public UserInfo findByAccount(String account);

	/**
	 * ljp 20111220 检测用户号码注册重复
	 * 
	 * @return
	 */
	public List<UserInfo> searchUserByMobile(String mobile);

	/**
	 * ljp 20120203 查询所有用户信息
	 */
	public List<UserInfo> findAllUserInfo();

	/**
	 * ljp 20111221 用户注册
	 */
	public boolean insertUserInfo(UserInfo uinfo);

	/**
	 * ljp 20101102 修改用户密码
	 * 
	 * @param UserInfo对象
	 * @return
	 */
	public boolean updateUserPassword(UserInfo user);

	/**
	 * ljp 20111222 修改个人用户信息
	 * 
	 * @param user对象
	 * @return
	 */
	public boolean modifyUserInfo(UserInfo user);

	/**
	 * ljp 20120106 根据条件查询用户信息
	 * 
	 * @param pageNo 当前页数
	 * @param pageSize 每页多少条
	 * @param beginTime 选择开始时间
	 * @param endTime 选择结束时间
	 * @param userName 姓名 
	 * @param account 账号
	 * @param companyName 公司名称ID
	 * @param balBegin 开始余额
	 * @param balEnd 结束余额
	 * @param userType 用户属性
	 * @param userProvince 省份
	 * @param userCity 城市
	 * @param userZone 区县
	 * @return 用户对象
	 * @throws Exception
	 */
	public Page<UserInfo> findUserInfoList(int pageNo, int pageSize, Date beginTime, Date endTime,
								String userName,String account,Integer companyName,BigDecimal balBegin,BigDecimal balEnd,
								Integer userType,String userProvince,String userCity,String userZone) throws Exception;

	/**
	 * ljp 20120109 查询所有用户信息
	 * 
	 * @param pageNo 当前页数
	 * @param pageSize 每页多少条
	 * @return 用户对象
	 * @throws Exception
	 */
	public Page<UserInfo> queryAllUserList(int pageNo, int pageSize);

}
